1. Field of the Invention
The present disclosure relates generally to multicast data packet forwarding internal to a router or switch, and more particularly to router management failover behavior for multicast data packets.
2. Description of Related Art
Packet data routers (hereinafter “routers”) are a well-known component of packet data networks. Packet data routers use routing protocols to discover shortest-path routes to (in an Internet-Protocol (IP) network) IP addresses, and then route packets received from neighboring devices toward their destination over the discovered routes. Many routers can also function as a switch for groups of their ports that connect to a common Local Area Network (LAN) or Virtual LAN.
A data packet may be a “unicast” packet, a “multicast” packet, or a “broadcast” packet. Unicast packets have a single source and a single destination. When a router receives a unicast packet, it simply forwards it toward the destination address stored in the packet. Broadcast packets are intended for distribution to all neighbors in a network—a router replicates such a packet and sends it out all ports on that network. A multicast packet typically has a distribution between that of a unicast packet and that of a broadcast packet. A multicast packet generally has a single source, but multiple receivers. Rather than having the source create multiple copies of the same packet, one addressed to each receiver, the source addresses one copy to a multicast group address. A router receiving such a packet determines which of its outgoing interfaces should receive a copy (or multiple copies, if the outgoing interface serves multiple VLANs that have endpoints that have each requested a copy), replicates the packet accordingly, and forwards it out the appropriate interfaces. This technique can avoid wasted bandwidth in a network by only replicating a multicast packet where two partially-shared receiver paths diverge.
In an IPv4 Multicast network, IP multicast packets are identified by a destination address in a defined range of IP addresses (address prefixes 224 to 239). A source “sends” a multicast packet to the group by placing a valid IP Multicast group address in the destination address field of an IP packet, without necessarily knowing the identities or number of the receivers. Receivers that are interested in receiving packets sent to that group use the IP Multicast group address to register their interest with a neighboring router, by sending an IGMP (Internet Group Management Protocol, see, e.g., Internet Engineering Task Force (“IETF”) Request For Comments (“RFC”) 3376, “Internet Group Management Protocol, Version 3,” B. Cain et al., October 2002, incorporated herein by reference) packet to the router. In one common deployment, the router advertises the requested IP Multicast group address, in turn, to its neighbor routers, using PIM-SM packets (Protocol-Independent Multicast-Sparse Mode, see, e.g., IETF RFC 4601, “Protocol Independent Multicast—Sparse Mode (PIM-SM): Protocol Specification (Revised),” B. Fenner et al., August 2006, incorporated herein by reference). Neighbor routers work together with a Rendezvous Point router to establish delivery of the requested multicast packets to the interested receivers through either a “shared tree” that passes through the Rendezvous Point or a “source-specific tree” that may take a more direct path from the source to the receivers.
FIG. 1 shows a simplified network 100, with two multicast sources S1 and S2, four multicast receivers D1, D2, D3, and D4, and three intermediate routers R1, R2, and R3. Source S1 connects directly to R1, while source S2 connects to R1 through, e.g., an IP network 110. R1 also connects directly to routers R2 and R3, and to receiver D1. R2 also connects directly to receiver D2, and to receiver D3 through a local area network 120. R3 also connects directly to receiver D4.
Assume that receivers D1 and D2 wish to join a multicast group G1, with IP Multicast group address 239.168.1.1, and receivers D3 and D4 wish to join a multicast group G2, with IP Multicast group address 224.128.1.1. Each receiver sends an IGMP join group request packet to its closest router, indicating the desired IP Multicast group address and its own IP address as a requested multicast destination. Intermediate switches (not shown) within local area network 120 may “snoop” IGMP packets as they pass through the switch to learn of the request as well, but at this point the role of such switches is to simply forward the IGMP request to R2.
Each router uses PIM-SM join messages to advertise in turn to its adjacent routers that it is interested in the multicast groups requested by the receivers it serves. For instance, R3 sends a PIM-SM join message to R1, expressing interest in G2; R2 sends a PIM-SM join message to R1, also expressing interest in G2. R2 also sends another PIM-SM join message to R1, expressing interest in G1. R1 consolidates this information, and may forward PIM-SM join messages for both G1 and G2 toward a Rendezvous Point router (not shown) in IP network 110 (note that only one PIM-SM join message is sent by R1 for each group, even though R1 received two separate IGMP and/or PIM join messages for each multicast group).
Assume that S1 begins sending IP Multicast packets to R1, with the group G1 IP Multicast group address 239.168.1.1 as the IP destination address. R1 knows that it must send out two copies of these packets—one to D1; and one to R2. When R2 receives its copy, it forwards the IP Multicast packets to D2.
Assume also that a router within IP network 110 becomes aware that S2 is sending IP Multicast packets with the IP Multicast group address 224.128.1.1 as the IP destination address, and the same router knows that R1 (or an intermediate node) has expressed interest in that multicast group. A copy of the S2 multicast packets will be forwarded to R1. R1 knows that it must send out two copies of these packets as well—one to R2, and one to R3. When R2 receives its copy, it forwards the IP Multicast packets to LAN 120 for delivery to D3. When R3 receives its copy, it forwards the IP Multicast packets to D4.
IGMP receivers periodically repeat their IGMP requests to insure that they continue to receive multicast traffic, and can also notify the closest router that they no longer require traffic from a multicast group by issuing a leave group request. When a router does not receive any repeated requests from a receiver, the multicast route information for that receiver will eventually time out and the router will stop forwarding that multicast traffic to the receiver. When the receiver was the last one served by the router, the router will send a PIM prune message to its neighbor routers, notifying them that it no longer needs packets for that multicast group.
Other types of PIM exist, including a Dense Mode (see, e.g., IETF RFC 3973, incorporated herein by reference), a Source Specific Mode (see, e.g., IETF RFC 3569, incorporated herein by reference), and a Bidirectional Mode (see, e.g., IETF RFC 5015, incorporated herein by reference). Each uses a different method to create and manage a multicast distribution tree. Internal to a router, however, the router must still track the ports on which it must send out packets for each multicast group, no matter which PIM type is deployed.